home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / trillian_patchg.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  131 lines

  1. #
  2. # Copyright (C) 2004 Tenable Network Security
  3. #
  4. if(description)
  5. {
  6.  script_id(12076);
  7.  script_version("$Revision: 1.4 $");
  8.  
  9.  name["english"] = "Trillian remote Overflow";
  10.  
  11.  script_name(english:name["english"]);
  12.  
  13.  desc["english"] = "
  14. Trillian is a Peer2Peer client that allows users to chat and share files
  15. with other users across the world.  A bug has been reported in the AOL 
  16. Instant Messenger (AIM) portion of Trillian.  A remote attacker, exploiting
  17. this flaw, would be potentially able to execute code on the client system
  18. running Trillian.
  19.  
  20. Solution: Upgrade to Trillian 0.74 patch G (or higher)
  21.  
  22. See also: http://security.e-matters.de/advisories/022004.html
  23. Risk factor : High";
  24.  
  25.  
  26.  
  27.  script_description(english:desc["english"]);
  28.  
  29.  summary["english"] = "Determines the version of Trillian.exe";
  30.  
  31.  script_summary(english:summary["english"]);
  32.  
  33.  script_category(ACT_GATHER_INFO);
  34.  
  35.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security");
  36.  family["english"] = "Windows";
  37.  script_family(english:family["english"]);
  38.  
  39.  script_dependencies("netbios_name_get.nasl",
  40.               "smb_login.nasl","smb_registry_access.nasl");
  41.  script_require_keys("SMB/name", "SMB/login", "SMB/password",
  42.              "SMB/WindowsVersion",
  43.              "SMB/registry_access");
  44.  
  45.  script_require_ports(139, 445);
  46.  exit(0);
  47. }
  48.  
  49.  
  50. include("smb_nt.inc");
  51.  
  52. # reg value = "C:\Program Files\Trillian\trillian.exe -command="%1"   "
  53.  
  54. rootfile = registry_get_sz(key:"SOFTWARE\Classes\AIM\shell\open\command", item:"Default");
  55. if(!rootfile)
  56. {
  57.  exit(0);
  58. }
  59. else
  60. {
  61.  share = ereg_replace(pattern:"([A-Z]):.*", replace:"\1$", string:rootfile);
  62.  findash = strstr(rootfile, "-command");
  63.  file = rootfile - findash;
  64. }
  65.  
  66.  
  67. #display(string(share, "\n", file, "\n"));
  68. #exit(0);
  69.  
  70.  
  71.  
  72. name     =  kb_smb_name();
  73. login    =  kb_smb_login();
  74. pass      =  kb_smb_password();
  75. domain     =  kb_smb_domain();
  76. port    =  kb_smb_transport();
  77. if(!port) port = 139;
  78.  
  79.  
  80.  
  81. if(!get_port_state(port))exit(0);
  82.  
  83. soc = open_sock_tcp(port);
  84. if(!soc)exit(0);
  85.  
  86.  
  87.  
  88. r = smb_session_request(soc:soc, remote:name);
  89. if(!r)exit(0);
  90.  
  91. prot = smb_neg_prot(soc:soc);
  92. if(!prot)exit(0);
  93.  
  94. r = smb_session_setup(soc:soc, login:login, password:pass, domain:domain, prot:prot);
  95. if(!r)exit(0);
  96.  
  97. uid = session_extract_uid(reply:r);
  98.  
  99.  
  100.  
  101. r = smb_tconx(soc:soc, name:name, uid:uid, share:share);
  102. tid = tconx_extract_tid(reply:r);
  103. if(!tid)exit(0);
  104.  
  105. fid = OpenAndX(socket:soc, uid:uid, tid:tid, file:file);
  106. if(!fid)exit(0);
  107.  
  108. fsize = smb_get_file_size(socket:soc, uid:uid, tid:tid, fid:fid);
  109. if (!fsize) exit(0);
  110.  
  111.  
  112. # C:\Program Files\Trillian>find /N /i "v0.7" trillian.exe
  113. #
  114. #---------- TRILLIAN.EXE
  115. #[31288]v0.74 (w/ Patch G) - February 2004
  116.  
  117. off = 31200;
  118. data = ReadAndX(socket:soc, uid:uid, tid:tid, count:512, off:off);
  119. data = str_replace(find:raw_string(0), replace:"", string:data);
  120.  
  121. version = strstr(data, "v0.7");
  122. if(!version)exit(0);
  123. hopup = version + 25;
  124. v = version - hopup;
  125. set_kb_item(name:"Host/Windows/Trillian/Version", value:v);
  126. if (egrep(string:v, pattern:"v0\.7[1-4].*")) {
  127.     if (! egrep(string:v, pattern:"\(w/ Patch [G-Z]\)")) security_hole(port);
  128. }
  129.  
  130. exit(0);
  131.